﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PDX
{
    /// <summary>
    /// Responsible for resolving property paths into <see cref="IPropertyResolution"/>s.
    /// </summary>
    /// <remarks>
    /// To hook in a custom implementation, set
    /// <see cref="DefaultPropertyResolver.DefaultInstance"/>.
    /// </remarks>
    public interface IPropertyResolver
    {
        /// <summary>
        /// Resolves the property path on the specified viewmodel.
        /// </summary>
        /// <param name="viewmodel">The viewmodel.</param>
        /// <param name="propertyPath">The property path.</param>
        /// <returns></returns>
        IPropertyResolution Resolve(object viewmodel, string propertyPath);
    }
}
